/**
 * @file brd_delay.h
 * @brief 延时板级层
 * @par 修改日志
 * <table>
 * <tr><th>Date <th>Version <th>Author <th>Description
 * <tr><td>2020-12-21 <td>1.0 <td>软件工程院 <td>创建初始版本
 * @par 示例
 * @code
 * 创建一个设备.
   ...
   Brd_DelayMs(10);
   ...
   Bool flag = False;
   if (Brd_DelayMsWithFlag(10, &flag))
   {
       // do something
   }
   ...
 * @endcode
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */

#ifndef _BRD_DELAY_H_
#define _BRD_DELAY_H_

#include <ofc_types.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 毫秒级延时, 超时后返回
 * @param ms: 延时时间, 单位 ms
 * @return 无返回值
 */
void Brd_DelayMs(UInt32 ms);

/**
 * 毫秒级延时, 并检查标志事件
 * @param ms: 延时时间, 单位 ms
 * @param flag: 外部标志指针
 * @return 当返回值 >= 0 时, 表示成功 \n
 *         当返回值 < 0 时, 表示失败参见[brd_def](@ref Brd_TErrorCodeTag)
 */
Int32 Brd_DelayMsWithFlag(UInt32 ms, Bool *flag);

#ifdef __cplusplus
}  ///< extern "C"
#endif

#endif // _BRD_DELAY_H_
